package main

// Go 语言中各个进制的数据如何转换
import "fmt"

func main() {

	// 十进制
	// var a int = 101
	a := 101
	// 输出参数值
	fmt.Printf("%d \n", a) // 101
	// 输出二进制的值
	fmt.Printf("%b \n", a) // 1100101  占位符%b表示二进制
	fmt.Printf("%o \n", a) // 145  占位符%o表示八进制
	fmt.Printf("%x \n", a) // 65  占位符%x表示十六进制

	// 八进制 以0开始
	// var b int = 077
	b := 077
	// 输出参数值
	fmt.Printf("%o \n", b) // 77

	// 十六进制 以0x开头
	// var c int = 0xff
	c := 0xff
	fmt.Printf("%x \n", c) // ff
	fmt.Printf("%X \n", c) // FF

	// 查看变量类型 %T
	fmt.Printf("%d \n", c)
	fmt.Printf("%T \n", c)

	// 声明int8类型的变量
	d := int8(9) // 明确指定int8类型，否则默认将采用int类型
	fmt.Printf("%d \n", d)
	fmt.Printf("%T \n", d)
}
